SystemView
The real-time software analysis tool from SEGGER
SystemView records the runtime behavior of an embedded system for in-depth analysis and visualization.
Overview
SystemView is a real-time recording and visualization tool designed to analyze and profile the behavior of embedded systems. It offers deep insights into runtime behavior, surpassing the capabilities of traditional debuggers. Ideal for complex systems with multiple threads and interrupts, SystemView helps developers ensure their systems perform as intended, identify inefficiencies, and uncover unintended interactions or resource conflicts. By recording monitor data from the embedded system via the debug interface, SystemView visualizes tasks, interrupts, and software timer execution in detail, documenting their frequency, order, and execution time.
Key features
SystemView provides powerful features while being minimally intrusive, which makes it an essential tool for embedded system development. It works with any CPU, RTOS, or bare-metal system, ensuring high flexibility and adaptability to different setups. With this broad compatibility, developers can use SystemView in a wide variety of embedded projects.
Continuous real-time recording
SystemView captures tasks, interrupts, timers, resources, API calls, and user events in real time, enabling developers to analyze the full runtime behavior of embedded systems with minimal intrusion.
DataPlot window
SystemView visualizes variables, sensor data, and custom metrics in real time alongside recorded events. This synchronized, scope-like view provides deep insights into system behavior for precise debugging and optimization.
Recording via J-Link and SEGGER RTT Technology, IP, or UART
SystemView seamlessly records data from the target system using versatile connection options, ensuring compatibility across a wide range of devices and setups for flexible and efficient analysis.
Use cases
SEGGER's SystemView is designed to provide deep insights into the operation of embedded systems. It supports a wide range of applications, from verifying system behavior to optimizing performance and analyzing complex interactions in multithreaded environments. Its versatility makes it a valuable tool for understanding and improving real-time systems.
Analysis of complex systems with multiple threads and events
For complex systems with multiple threads, interrupts, and events, SystemView delivers a deeper level of insight than traditional debugging tools. By capturing and analyzing interactions across all system components, it reveals intricate relationships and potential conflicts that may not be visible through conventional methods.
Verification of system behavior
SystemView enables precise verification of system behavior by providing real-time visualization of task execution, interrupts, and API calls. By capturing a detailed timeline of events, it becomes easier to ensure that all parts of the system are functioning as designed. This helps in identifying irregularities or unexpected behavior early in the development process, leading to more reliable and robust systems.
Optimization of resources and performance
With its detailed timing analysis, SystemView enables in-depth evaluation of resource usage and performance. It highlights inefficiencies, such as excessive CPU load or poorly distributed task execution, and provides actionable insights to optimize system performance. By fine-tuning task scheduling, memory allocation, and runtime behavior, developers can achieve significant improvements in overall efficiency and responsiveness.
How SystemView works
SystemView operates by integrating a small software module, containing SystemView and RTT, into the target system. This module collects event data, formats it, and passes it to the RTT module. The RTT module stores the data in the target buffer, which enables continuous recording with a J-Link on supported systems, as well as single-shot recording on any system. Events such as interrupt start and end are monitored and stored with high-accuracy timestamps, configurable down to a single CPU cycle (5 ns on a 200 MHz CPU).
The SystemView module is efficient, requiring less than 2 KB of ROM and about 600 bytes of RAM for continuous recording using J-Link. It imposes minimal overhead—less than 1% on a system with 10,000 events per second on a 200 MHz Cortex-M4. Data is transferred via the debug interface, requiring no additional hardware or pins. The tool can be used on any system that offers debug access.
Adding SystemView to a target system is straightforward. Only a small set of files needs to be included in the project, and depending on the system, as little as one function call or two lines of code per interrupt are needed. This simple setup can typically be completed within minutes, enabling efficient and precise event monitoring.
SystemView can be used out-of-the-box with RTOSs such as embOS, uC/OS-III, Micrium OS Kernel, FreeRTOS, NuttX, and Zephyr or even without any OS to record interrupt activity and user events.
More information on how SystemView works is available in the SystemView user manual.
Features
Recording events
Captures runtime events such as interrupts, task switches, and API calls, with timestamps accurate to a single CPU cycle. This information is visualized in the Events Window and provides detailed insights, including API function names, parameter values, execution contexts, and durations.
Event Timeline window
Chronologically plots task switches, interrupt activity, and scheduling events. This visualization helps developers pinpoint inefficiencies, identify anomalies, and gain a clear understanding of runtime behavior across tasks and interrupts.
CPU load analysis
Identifies bottlenecks and high-load periods, allowing developers to balance workloads and ensure timely execution of critical tasks. Visual feedback helps optimize performance for smoother operations.
Tracking and measuring performance
Generates marker events to measure durations between specific points in the target system. SystemView automatically links markers and provides additional metrics, such as runtime and count, enabling precise performance analysis and optimization.
Logging output
Logs messages during recording, including warnings and errors, with formatting similar to printf()
. To save time and resources, formatting is deferred to the SystemView application, which processes and displays the log data in its Terminal Window.
System requirements
Supported OS | |
---|---|
Windows | Microsoft Windows (x64/Arm) |
macOS | macOS (x64/Apple Silicon) |
Linux | Linux (x64/Arm) |
Development system | |
---|---|
CPU | 2GHz |
Memory | 4GB RAM |
Disk space | 2GB |
Licensing
SystemView is available as a SEGGER Software Tool under SEGGER's Friendly License for non-commercial use and SEGGER's Commercial-use License. Licenses for SystemView are perpetual, enabling you to use the tool indefinitely without requiring an annual subscription.
Silicon vendor buyouts
SEGGER offers the option to license SystemView for redistribution to company customers on a company's own terms. A free commercial license may be used to develop applications for certain devices from a silicon vendor. Free licenses can be activated easily through the license-request dialog.
Get in touch with us
Have questions or need assistance? Our Embedded Experts are here to help!
Reach out to us for:
- Licensing quotes
- Technical inquiries
- Project support